package com.neuedu.corejava.ch10.homework;

import java.util.LinkedList;

/*
 3、请使用LinkedList来模拟一个队列(先进先出的特性): [必做题]
3.1 拥有放入对象的方法void put(Object o)
3.2 取出对象的方法Object get()
3.3 判断队列当中是否为空的方法boolean isEmpty()；并且，编写测试代码，验证你的队列是否正确。
 */
public class MyQueue3 {

	  //定义一个内存空间
			LinkedList<Object> data = new LinkedList<>();

			public void put(Object o) {
				data.add(o); //add方法，把数据保存到链表的后面
			  //data.addLast(o); //addLast方法，把数据保存到链表的后面
			}

			public Object get() {
				// 从队列中获取元素，获取最先放入元素，获取后从队列中删除该元素
				Object obj = null;
				if(!data.isEmpty()) {
					obj=data.get(0);
					data.remove(obj);
				}
				
				
				
				//Object obj = data.getFirst();
				// 获取后从队列中删除该元素
				//data.removeFirst();
				return obj;
			}

			public boolean isEmpty() {
				//return data.size() == 0 ? true : false;
				return data.isEmpty();
			}


	public static void main(String[] args) {
		//1、读懂代码的功能，理解代码
		//2、设计测试用例，使用循环结构生成一批数据，保存到队列中， --模拟批有序的数据
		//3、遍历集合，取出数据，并检查数据的顺序。
		MyQueue3 que = new MyQueue3();
		que.put("a");
		que.put("b");
		que.put("c");

		while (!que.isEmpty()) {

			// 获取第一个元素
			Object k = que.get();
			System.out.println(k);
			
		}
	}

}
